What is daemon thread in Java why do we need it